﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Biblioteca.Utils;
using SERIX.Util;

namespace SERIX
{
    /*
     * Autor      : IT-Developer1
     * Data       : 02/04/2010 11:03:48
     * Descricao  : 
     * Alteracoes : 
     * 
     */
    public partial class AcoesProgramasManut : Seguranca
    {
        //string _idtMestre;

        string _operacao;
        string _idt;
        string _tpoAcao;

        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnLoad(e);
            string login = UsuAut.Login;
            _operacao = Request["OP"];
            if (!String.IsNullOrEmpty(Request["idt"]))
            {
                _idt = Server.UrlDecode(Criptografia.Descriptografar(Request["idt"]));
            }

            if (!Page.IsPostBack)
            {
                switch (_operacao)
                {
                    case "R":
                        {
                            Cancelar_Button.Visible = false;
                            CAcoesProgramas dao = CAcoesProgramas.PesquisaporCodigo(_idt, login);
                            CarregaDados(dao);
                            DesabilitaControles();
                            break;
                        }
                    case "U":
                        {
                            CAcoesProgramas dao = CAcoesProgramas.PesquisaporCodigo(_idt, login);
                            CarregaDados(dao);
                            break;

                        }
                    case "I":
                        {
                            if (!String.IsNullOrEmpty(Request["idtMestre"]))
                            {
                                //_idtMestre = Server.UrlDecode(Criptografia.Descriptografar(Request["idtMestre"]));
                                // guarda na sessão o idt do mestre
                                //Session[Page.ToString() + "_IdtMestre"] = _idtMestre;
                            }
                            break;
                        }
                    case "D":
                        {
                            CAcoesProgramas dao = CAcoesProgramas.PesquisaporCodigo(_idt, login);
                            CarregaDados(dao);
                            DesabilitaControles();
                            break;
                        }
                    default: break;
                }
            }
            SetaDadosMestre();
        }

        private void SetaDadosMestre()
        {
            //if (_idtMestre == null)
            //    _idtMestre = (string) Session[Page.ToString() + "_IdtMestre"];

            string login = UsuAut.Login;
            if (!IsPostBack)
            {
                //CProgramas dao = CProgramas.PesquisaporCodigo(_idtMestre, login);
                //lblPrograma.Text = dao.Nom_prog;
                // lblDataInicio.Text = dao.Dat_ini;
            }
        }

        private void CarregaDados(CAcoesProgramas dao)
        {
            txtDescricao.Text = dao.Dsc_acao;
            _tpoAcao = dao.Idt_tpo_acao;

            // guarda na sessão o idt do mestre
            //Session[Page.ToString() + "_IdtMestre"] = dao.Idt_prog;
        }

        protected void DesabilitaControles()
        {
            BiblioSERIX.DesabilitaControle(txtDescricao);
            BiblioSERIX.DesabilitaControle(ddlTipoAcao);
        }

        protected void Ok_Button_Click(object sender, EventArgs e)
        {
            try
            {
                string login = UsuAut.Login;
                CAcoesProgramas dao = SetDados(login);
                switch (_operacao)
                {
                    case "I":
                        {
                            dao.Inserir(login);
                            break;
                        }
                    case "U":
                        {
                            dao.Alterar(login);
                            break;
                        }
                    case "D":
                        {
                            dao.Excluir(login);
                            break;
                        }
                    default: break;
                }
                Response.Redirect("AcoesProgramas.aspx");//?&idt=" + Server.UrlEncode(Criptografia.Criptografar(_idtMestre)));
            }
            catch (Exception ex)
            {
                lblErro.Text = "*Erro: " + ex.Message;
                lblErro.Visible = true;
            }
        }

        private CAcoesProgramas SetDados(string login)
        {
            if (String.IsNullOrEmpty(_idt) && _operacao[0].Equals('I'))
            {
                _idt = CAcoesProgramas.ObterNovoIdt(login).ToString();
            }            
            CAcoesProgramas dao = new CAcoesProgramas(_idt, ddlTipoAcao.SelectedValue, txtDescricao.Text);
            return dao;
        }

        protected void Cancelar_Button_Click(object sender, EventArgs e)
        {
            Response.Redirect("AcoesProgramas.aspx");//?&idt=" + Server.UrlEncode(Criptografia.Criptografar(_idtMestre)));
        }

        protected void ddlTipoAcao_PreRender(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlTipoAcao.Items.Insert(0, new ListItem(":.Selecione o tipo da ação.:"));
                ddlTipoAcao.SelectedValue = _tpoAcao;
            }
        }
    }
}
